package com.atguigu.nio.channel;

import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * 应用实例 1-本地文件写数据
 *
 * 1) 使用前面学习后的ByteBuffer（缓冲）和 FileChannel（通道），将"hello,尚硅谷"写入到file01.txt中
 * 2) 文件不存在就创建（自动创建）
 */
public class NIOFileChannel01 {

    public static void main(String[] args) throws Exception {

        String str = "hello,尚硅谷";
        // 创建一个输出流->channel
        FileOutputStream fileOutputStream = new FileOutputStream("d:\\file01.txt");

        // 通过fileOutputStream获取对应的FileChannel
        // 这个fileChannel真实类型是FileChannelImpl
        FileChannel fileChannel = fileOutputStream.getChannel();

        // 创建一个缓冲区ByteBuffer
        ByteBuffer byteBuffer = ByteBuffer.allocate(1024);

        // 将str放入byteBuffer
        byteBuffer.put(str.getBytes());

        // 对byteBuffer进行flip
        byteBuffer.flip();

        // 将byteBuffer数据写入到fileChannel
        fileChannel.write(byteBuffer);
        fileOutputStream.close();
    }
}
